#ifndef __M_TEXT_VIEW_H__
#define __M_TEXT_VIEW_H__

#include "Layout.h"

typedef View TextView;

#define TextViewSetLayoutGravity(textView, gravity) ViewSetLayoutGravity(textView, gravity)
#define TextViewGetLaoyoutGravity(textView) ViewGetLaoyoutGravity(textView)

#define TextViewSetLayoutMargin(textView, left, right, top, bottom) ViewSetLayoutMargin(textView, left, right, top, bottom)
#define TextViewGetLayoutMargin(textView, left, right, top, bottom) ViewGetLayoutMargin(textView, left, right, top, bottom)

#define TextViewSetLayoutSize(textView, layout_w, layout_h) ViewSetLayoutSize(textView, layout_w, layout_h)
#define TextViewGetLayoutSize(textView, layout_w, layout_h) ViewGetLayoutSize(textView, layout_w, layout_h)

#define TextViewSetLayoutAvailableSize(textView, available_w, available_h) ViewSetLayoutAvailableSize(textView, available_w, available_h)
#define TextViewGetLayoutAvailableSize(textView, available_w, available_h) ViewGetLayoutAvailableSize(textView, available_w, available_h)

#define TextViewSetLayoutPosition(textView, layout_x, layout_y) ViewSetLayoutPosition(textView, layout_x, layout_y)
#define TextViewGetLayoutPosition(textView, layout_x, layout_y) ViewGetLayoutPosition(textView, layout_x, layout_y)

#define TextViewSetVisibility(textView, visibility) ViewSetVisibility(textView, visibility)
#define TextViewGetVisibility(textView) ViewGetVisibility(textView)

#define TextViewSetOrientation(textView, orientation) ViewSetOrientation(textView, orientation)
#define TextViewGetOrientation(textView) ViewGetOrientation(textView)

#define TextViewSetGravity(textView, gravity) ViewSetGravity(textView, gravity)
#define TextViewGetGravity(textView) ViewGetGravity(textView)

#define TextViewSetPadding(textView, left, right, top, bottom) ViewSetPadding(textView, left, right, top, bottom)
#define TextViewGetPadding(textView, left, right, top, bottom) ViewGetPadding(textView, left, right, top, bottom)

#define TextViewSetAutoFree(textView, auto_free) ViewSetAutoFree(textView, auto_free)
#define TextViewIsAutoFree(textView) ViewIsAutoFree(textView)

#define TextViewSetFocus(view, focused) ViewSetFocus(view, focused)
#define TextViewIsFocused(view) ViewIsFocused(view)

#define TextViewSetBgColor(textView, color) ViewSetBgColor(textView, color)
#define TextViewGetBgColor(textView) ViewGetBgColor(textView)

#define TextViewSetUserData(textView, data) ViewSetUserData(textView, data)
#define TextViewGetUserData(textView) ViewGetUserData(textView)

#define TextViewGetMeasuredSize(textView, measured_w, measured_h) ViewGetMeasuredSize(textView, measured_w, measured_h)
#define TextViewGetWrapSize(textView, wrap_w, wrap_h) ViewGetWrapSize(textView, wrap_w, wrap_h)
#define TextViewGetOccupySize(textView, occupy_w, occupy_h) ViewGetOccupySize(textView, occupy_w, occupy_h)
#define TextViewGetMeasuredContentSize(textView, measured_content_w, measured_content_h) ViewGetMeasuredContentSize(textView, measured_content_w, measured_content_h)
#define TextViewGetWrapContentSize(textView, wrap_content_w, wrap_content_h) ViewGetWrapContentSize(textView, wrap_content_w, wrap_content_h)

int TextViewSetText(TextView *textView, const char *text);
const char *TextViewGetText(TextView *textView);

int TextViewSetTextColor(TextView *textView, uint32_t color);
uint32_t TextViewGetTextColor(TextView *textView);

int TextViewSetSingleLine(TextView *textView, int single_line);
int TextViewIsSingleLine(TextView *textView);

int TextViewSetTextScollEnabled(TextView *textView, int enabled);
int TextViewIsTextScollEnabled(TextView *textView);

TextView *NewTextView();
int TextViewInit(TextView *textView);
int TextViewDeinit(TextView *textView);
int TextViewDestroy(TextView *textView);
int TextViewMeasure(TextView *textView);
int TextViewDraw(TextView *textView);

#endif
